Telefon/ Fax ändern
Ein kurzes Programm zum Anlegen neuer Telefon-/ Faxnummern oder Änderung.
Beschreibung
Dieser Report Ändert vorhandene Fax-Nummern oder legt einen neuen Eintrag an. Existiert bereits eine Nummer, so wird die neue Nummer zusätzlich angelegt.
Tipp
In gleicher Weise können natürlich auch die Telefonummern, Mail-Adressen, Teletext etc geändert werden. Anstelle von ADFAX in der DATA-Anweisung und im Übergabeparameter TABLE_TYPE müssen dann folgende Werte verwendet werden:
- ADFAX Faxnummern
- ADPAG Pagernummern
- ADPRT PRT-Adressen
- ADRFC RFC-Adressen
- ADRML RML-Adressen
- ADSMTP SMTP-Adressen
- ADSSF SSF-Adressen
- ADTEL Telefonnummern
- ADTLX Telexnummern
- ADTTX Teletexnummern
- ADURI URI-Adressen
- ADX400 X.400-Adressen
ADDR_SAVE
Anstelle des verwendetes Baustein ADDR_MEMORY_SAVE kann auch der Baustein ADDR_SINGLE_SAVE unter Angabe der Adressnummer verwendet werden. Der Single-Save ist wahrscheinlich sogar am besten, denn wenn man innerhalb einer SAP-Anwendung programmiert (User-Exit, BAdI, …) kann der Memory-Save zu ungewünschten Fehlern führen, da evtl. unvollständige oder kopierte Adressen ebenfalls bereits gespeichert werden.
Code
REPORT zz_address_fax_number. *== data DATA lt_fax TYPE STANDARD TABLE OF adfax. DATA ls_fax TYPE adfax. FIELD-SYMBOLS <fax> TYPE adfax. DATA lt_errors TYPE STANDARD TABLE OF addr_error. *== selection screen PARAMETERS p_adrnr TYPE adrc-addrnumber. PARAMETERS p_faxnr TYPE adfax-fax_number DEFAULT '555 - 1234 556'. PARAMETERS p_new AS CHECKBOX. "Create new address / append to existing *== First read existing numbers CALL FUNCTION 'ADDR_COMM_GET' EXPORTING address_number = p_adrnr table_type = 'ADFAX' iv_current_state = 'X' TABLES comm_table = lt_fax error_table = lt_errors EXCEPTIONS parameter_error = 1 address_not_exist = 2 internal_error = 3 OTHERS = 4. IF sy-subrc <> 0. *== also check LT_ERRORS for entries with MSG_TYPE "E"! BREAK-POINT. ENDIF. *== as there can be warnings in ERROR-table: Clear existing entries CLEAR lt_errors. IF lt_fax IS INITIAL OR p_new = 'X'. *== do not change existing numbers: CLEAR lt_fax. *== ADD the new number ls_fax-fax_number = p_faxnr. ls_fax-country = 'DE'. ls_fax-updateflag = 'I'. APPEND ls_fax TO lt_fax. ELSE. READ TABLE lt_fax ASSIGNING <fax> INDEX 1. *== CHANGE the existing number IF sy-subrc = 0. <fax>-fax_number = p_faxnr. <fax>-country = 'DE'. <fax>-updateflag = 'U'. ENDIF. ENDIF. *== set number CALL FUNCTION 'ADDR_COMM_MAINTAIN' EXPORTING address_number = p_adrnr language = sy-langu table_type = 'ADFAX' check_address = 'X' TABLES comm_table = lt_fax error_table = lt_errors EXCEPTIONS parameter_error = 1 address_not_exist = 2 internal_error = 3 OTHERS = 4. IF sy-subrc <> 0. *== Also check for LT_ERRORS!! BREAK-POINT. ELSE. *== Everything okay: Save address CALL FUNCTION 'ADDR_MEMORY_SAVE'. *==> Also ADDR_SINGLE_SAVE is possible!: * CALL FUNCTION 'ADDR_SINGLE_SAVE' * EXPORTING * address_number = p_adrnr. ENDIF.
- Meine Eclipse-Plugins - 22. November 2024
- Interview mit Björn Schulz (Software-Heroes.com) - 3. September 2024
- Daten aus ALV ermitteln - 3. September 2024